# -*- coding: utf-8 -*-
#对彩色图片进行降噪
from scipy import ndimage
from skimage import data,util
import numpy as np
from matplotlib import pyplot as plt

#定义函数
def main(img):
    noise_img=np.zeros(img.shape)#创建相同维度大小的数组
    new_img=np.zeros(img.shape)
    #依次循环各通道
    for i in range(3):
        grayimg=img[:,:,i]
        #对图像加入椒盐噪声 
        noise_img[:,:,i]=util.random_noise(grayimg,mode='s&p',seed=None,clip=True)
        #中值滤波处理
        n=3
        new_img[:,:,i]=ndimage.median_filter(noise_img[:,:,i],(n,n))
    return img,noise_img,new_img


##加载图片，img为原始图像
#img=data.astronaut()
#gh=main(img)
###显示图像
#plt.figure()
#plt.imshow(gh[0],cmap='gray')#显示原始图像
#
#plt.figure()
#plt.imshow(gh[1],cmap='gray')#显示噪声结果
#
#plt.figure()
#plt.imshow(gh[2],cmap='gray')    #显示降噪结果





#r如果直接对图片进行处理
#image为原始图像
#img=data.astronaut()#加载宇航员图片,选取红色通道
#
##对图像加入椒盐噪声,seed随机种子
#noise_img=util.random_noise(img,mode='s&p',seed=None,clip=True)
##plt.imshow(noise_img)
#
##中值滤波器
#n=3
#new_img=ndimage.median_filter(noise_img,(n,n,n))#改变大小
##plt.imshow(new_img)
#
##显示图像
#plt.figure()
#plt.imshow(img,cmap='gray')#显示原始图像
#plt.figure()
#plt.imshow(noise_img,cmap='gray')#显示加载结果
#
#plt.figure()
#plt.imshow(new_img,cmap='gray')#显示降噪哦图片



